<?php

namespace App\Console\Commands;

use DB;
use Illuminate\Console\Command;

class TruncateImportAsset extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'TruncateImportAsset:tables {--table=}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        DB::statement('SET FOREIGN_KEY_CHECKS=0;');
        if ($tableName = $this->option('table')) {
            DB::table($tableName)->truncate();
        } else {
            //服务商
            DB::table('sps')->truncate();
            // 内容商
            DB::table('cps')->truncate();
            //演员
            DB::table('actors')->truncate();
            //导演
            DB::table('directors')->truncate();
            // 剧集
            DB::table('vassetis')->truncate();
            // 分集
            DB::table('vserialis')->truncate();
            // 归类
            DB::table('vcats')->truncate();
            // 分类
            DB::table('vcattags')->truncate();
            // 地区(媒资)
            DB::table('vareas')->truncate();
            // 语种
            DB::table('vlangs')->truncate();
            // 年代
            DB::table('vyears')->truncate();
            // 媒资-服务商
            DB::table('vasseti_sps')->truncate();
            // 媒资-演员
            DB::table('vasseti_actors')->truncate();
            // 媒资-內容商
            DB::table('vasseti_cps')->truncate();
            // 媒资-导演
            DB::table('vasseti_directors')->truncate();
            // 媒资-年代
            DB::table('vasseti_vyears')->truncate();
            // 媒资-语言
            DB::table('vasseti_vlangs')->truncate();
            // 媒资-分类
            DB::table('vasseti_vcattags')->truncate();
            // 媒资-地区
            DB::table('vasseti_vareas')->truncate();
            // 媒资-海报
            DB::table('vasseti_vposteris')->truncate();
            DB::table('vposteris')->truncate();
            // 媒资-文件
            DB::table('vasseti_vifiles')->truncate();
            DB::table('vifiles')->truncate();

            // 媒资-图片文件管理
            DB::table('imgtpls')->truncate();
            DB::table('vimgtags')->truncate();
            // 媒资-视频文件管理
            DB::table('resolutions')->truncate();
            DB::table('vfileexts')->truncate();
            /**
             * 和媒资导入无关的
             */
            // 产品包定义
            DB::table('pmtags')->truncate();
            // 产品包媒资
            DB::table('pmtag_vassetis')->truncate();
            // 产品包直播
            DB::table('pmtag_vchans')->truncate();

            // 有效期规则定义【计费周期定义的外键】
            DB::table('expiry_dates')->truncate();

            // 计费周期定义
            DB::table('metering_periods')->truncate();

            // 定价
            DB::table('prices')->truncate();
            // 定价-媒资
            DB::table('price_vassetis')->truncate();

            // 栏目模板【栏目的外键】
            DB::table('tpls')->truncate();
            // 栏目
            DB::table('columns')->truncate();
            // 栏目-分类
            DB::table('column_ccats')->truncate();

            // 栏目列表
            DB::table('collists')->truncate();
            // 栏目列表-栏目
            DB::table('collist_columns')->truncate();

            // 栏目分类
            DB::table('ccats')->truncate();

            // 专辑
            DB::table('albums')->truncate();
            // 专辑-栏目
            DB::table('album_columns')->truncate();
            // 专辑-媒资
            DB::table('album_vassetis')->truncate();

            // 推荐位
            DB::table('recommends')->truncate();
            // 推荐位媒资
            DB::table('recommend_vassetis')->truncate();

            // 二级栏目
            DB::table('subcolumns')->truncate();
            // 二级栏目-媒资
            DB::table('subcolumn_vassetis')->truncate();
            DB::table('subcolumn_vchans')->truncate();
            // 消息
            DB::table('messages')->truncate();
            // 订单记录
            DB::table('price_lists')->truncate();
            // jobs表
            DB::table('jobs')->truncate();
            /**
             * 内容模板相关表
             */
            // 内容模板详情表(废弃)
            DB::table('content_template_details')->truncate();
            // 内容模板类型
            DB::table('content_template_types')->truncate();
            // 内容模板
            DB::table('content_templates')->truncate();
            DB::table('operation_template_datas')->truncate();

            /**
             * 应用相关
             */
            // 应用表
            DB::table('applications')->truncate();
            // 应用页面管理表
            DB::table('application_pages')->truncate();
            // 页面表
            DB::table('pages')->truncate();
            // 页面布局中间表
            DB::table('page_layouts')->truncate();
            // 布局表
            DB::table('layouts')->truncate();
            // 布局区位表
            DB::table('layout_areas')->truncate();
            // 推荐数据
            DB::table('recommend_datas')->truncate();
            // 推荐媒资
            DB::table('recommended_video')->truncate();

            /**
             * 数据管理
             */
            // 数据表
            DB::table('datas')->truncate();
            // sp所属组织
            DB::table('sgroups')->truncate();
            // 渠道
            DB::table('ogroups')->truncate();
            // 功能栏目
            DB::table('column_funs')->truncate();
            // 推荐栏目
            DB::table('column_recs')->truncate();
            // 栏目类型
            DB::table('column_types')->truncate();

            /**
             * 批量导入历史表
             */
            DB::table('batch_import_vasseti_historys')->truncate();
            DB::table('batch_import_vchan_historys')->truncate();
            DB::table('inject_vasseti_historys')->truncate();
            DB::table('inject_vchan_historys')->truncate();
            DB::table('inject_vseriali_historys')->truncate();
            DB::table('publish_content_template_historys')->truncate();
            DB::table('failed_jobs')->truncate();
            DB::table('tasks')->truncate();
            DB::table('template_area_datas')->truncate();
            DB::table('template_area_images')->truncate();
            DB::table('template_styles')->truncate();
            DB::table('template_subcolumn_vasseti_datas')->truncate();

        }
        DB::statement('SET FOREIGN_KEY_CHECKS=1;');

        /**
        sps; //服务商
        actors; //演员
        directors; //导演
        vassetis; // 媒资/剧集
        vserialis; // 分集
        vcats; // 归类
        vcattags; // 分类
        vareas; // 地区(媒资)
        vlangs; // 语种
        vyears; // 年代
        vasseti_sps; // 媒资-服务商vasseti_cps
        vasseti_actors; // 媒资-演员
        vasseti_directors; // 媒资-导演
        vasseti_vyears; // 媒资-年代
        vasseti_vlangs; // 媒资-语言
        vasseti_vcattags; // 媒资-分类
        vasseti_vareas; // 媒资-地区
        vasseti_vposteris; // 媒资-海报
        vasseti_vifiles; // 媒资-文件

        TRUNCATE TABLE `sps`; // 服务商
        TRUNCATE TABLE `actors`; // 演员
        TRUNCATE TABLE `directors`; // 导演
        TRUNCATE TABLE `vassetis`; // 媒资
        TRUNCATE TABLE `vserialis`; // 分集
        TRUNCATE TABLE `vcats`; // 归类【清空有问题】
        TRUNCATE TABLE `vcattags`; // 分类
        TRUNCATE TABLE `vareas`; // 地区(媒资)
        TRUNCATE TABLE `vlangs`; // 语种
        TRUNCATE TABLE `vyears`; // 年代
        TRUNCATE TABLE `vasseti_sps`; // 媒资-服务商
        TRUNCATE TABLE `vasseti_actors`; // 媒资-演员
        TRUNCATE TABLE `vasseti_directors`; // 媒资-导演
        TRUNCATE TABLE `vasseti_vyears`; // 媒资-年代
        TRUNCATE TABLE `vasseti_vlangs`; // 媒资-语言
        TRUNCATE TABLE `vasseti_vcattags`; // 媒资-分类
        TRUNCATE TABLE `vasseti_vareas`; // 媒资-地区
        php artisan serve --host=0.0.0.0 --port=7005
         */
    }
}
